Network forwarding elements, such as switches and routers, have control and data plane components. OpenFlow is a networking standard that uses match-action paradigm for network packet switching. OpenFlow forwarding elements use match tables, action tables, statistics memories, meters memories, stateful memories, and ternary indirection memories.
The data plane component of a forwarding element includes several message processing stages that handle the forwarding of data packets that the forwarding element receives. The data plane includes a pool of unit memories in order to allocate memory capacity, to implement various tables and/or logical memories for performing match-action network packet switching.
The control plane component provides an interface for configuring the data plane component. The control plane component includes a compiler that configures the match tables and action tables of the data plane to perform different services provided by the forwarding element. The compiler allocates the match and action tables to different memory units prior to the deployment of the forwarding element. If during the runtime the memory units allocated to one of the tables are filled up, the data plane has to be reconfigured, which causes the current state of the forwarding element to be lost.